Ohne diese Anweisungskategorie wären Aufgaben wie die folgenden nur umständlich oder überhaupt nicht programmierbar:
Die erste Aufgabe liesse sich umständlich noch mit den Operatoren = und + programmieren (Summe = 1 + 2 + ... + 1000). Die zweite Aufgabe erfordert hingegen eine Anweisung, die je nach Bedingung die eine oder andere Anweisungsfolge ausführt. Man nennt dies eine Entscheidungsanweisung. Das erste Problem lösen wir mit der Wiederholungsanweisung Do While ... Loop (engl. loop heisst Schleife):
Zahl = 1 1 Summe = 0 2 Do While Zahl <= 1000 3 Summe = Summe + Zahl 4 Zahl = Zahl + 1 5 Loop 6
Der Programmausschnitt berechnet die Summe 1 + 2 + ... + 1000. Ein Hochkomma leitet einen Kommentar ein, der bis an das Ende der laufenden Zeile reichen darf. Die Zeilen 1 und 2 weisen dem Wiederholungszähler Zahl und der Aggregationsvariablen Summe die Anfangswerte 1 und 0 zu. Solange Zahl kleiner oder gleich 1000 ist, wird die Schleife der Zeilen 3 bis 6 betreten. Darin wird jedesmal der laufende Wert von Zahl zur Summe addiert, und Zahl wird um 1 erhöht. Gilt die Wiederholungsbedingung nach While nicht mehr, so springt das Programm nach dem Schleifenende (nach dem Schlüsselwort Loop) nicht mehr zur Zeile 3 zurück.
Die Struktur des Programmausschnitts lässt sich auf andere Wiederholungsaufgaben mit Do While ... Loop verallgemeinern:
<Initialisierung>
Do While <Ausführungsbedingung>
<Schleifenkörper>
Loop
Fehler schleichen sich vor allem an den folgenden Positionen einer Wiederholungsanweisung ein:
a) Initialisierung
Zahl = 1 Summe = 1 ‘ Initialisierungsfehler! Do While Zahl <= 1000 Summe = Summe + Zahl Zahl = Zahl + 1 Loop
b) Schleifenbedingung
Zahl = 1 Summe = 0 Do While Zahl < 1000 ‘ Bedingungsfehler! Summe = Summe + Zahl Zahl = Zahl + 1 Loop
c) Schleifenkörper
Zahl = 1 Summe = 0 Do While Zahl <= 1000 Zahl = Zahl + 1 ‘ Zählfehler! Summe = Summe + Zahl ‘ Aggregationsfehler! Loop
Jeder dieser Fehler lässt sich durch eine Korrektur der Initialisierungsphase, der Schleifenbedingung oder der Reihenfolge der Schleifenanweisungen beheben.